package com.heatup.apt.management.service.order;

import com.heatup.apt.model.course.CourseSchedule;
import com.heatup.apt.model.order.OrderDetail;
import com.heatup.apt.model.order.OrderInFoToTK;
import com.heatup.apt.model.order.OrderRefund;

import javax.servlet.http.*;
import java.io.*;
import java.util.*;

/**
 * 订单管理数据查询接口
 * @author jixiangyun
 * 2016年9月18日 下午5:05:53
 */
public interface OrderService {
	/**
	 * 获取团课列表
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public List<OrderInFoToTK> getOrderListByTK(Map<String, Object> map) throws Exception;




	/**
	 * 获取私教课程列表
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public List<OrderInFoToTK> getOrderListBySJ(Map<String, Object> map) throws Exception;
	/**
	 * 获取檬营课程列表
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public List<OrderInFoToTK> getOrderListByMY(Map<String, Object> map) throws Exception;
	/**
	 * 获取自助健身课程列表
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public List<OrderInFoToTK> getOrderListByZZ(Map<String, Object> map) throws Exception;
	/**
	 * 获取门店列表
	 * @param map
	 * @return
	 */
	public List<Map<String,Object>> getStoreList(Map<String,Object> map);
	/**
	 * 创建订单
	 * @param map
	 * @return
	 * @throws Exception 
	 */
	public int createdRefundOrder(Map<String,Object> map) ;
	/**
	 * 修改订单状态
	 * @param map
	 * @return
	 */
	public int updateOrder(Map<String,Object> map);
	
	/**
	 * 获取私教课程计划列表
	 * @param map
	 * @return
	 */
	public List<CourseSchedule> getCourseScheduleList(Map<String,Object> map);
//
//	/**
//	 * 保存私教课程-销课
//	 * @param map
//	 * @return
//	 */
//	public int saveCourseReg(Map<String,Object> map);
	/**
	 * 获取订单的总课时
	 * @param map
	 * @return
	 */
	public OrderDetail getOrderDetail(Map<String,Object> map);
//	/**
//	 * 获取销课列表信息
//	 * @param map
//	 * @return
//	 */
//	public List<Map<String,Object>> getCourseRegList(Map<String,Object> map);
	/**
	 * 查询课程信息
	 * @param map
	 * @return
	 */
	public Map<Object, Object> getCourseInfoById(Map<String, Object> map);
	/**
	 * 查询所有退款状态不是成功的订单
	 * @return
	 */
	public List<OrderRefund> getOrderRefundList();
	/**
	 * 修改退款订单状态
	 * @param orderRefund
	 * @return
	 */
	int updateOrderRefund(OrderRefund orderRefund);
	
	/**
	 * 销课
	 * OrderService.updateCancelCourse()<BR>
	 * <P>Author :  fangxiaowen </P>  
	 * <P>Date : 2016年10月21日 </P>
	 * @param num 课程顺序
	 * @param id 签到ID
	 * @param courseId 课程ID
	 * @param storeId 门店ID
	 * @param orderId 订单ID
	 * @param startTime 开始时间
	 * @param closeTime 关闭时间
	 * @return
	 */
	Map updateCancelCourse(String num,String id,String courseId,String storeId,String orderId,String startTime,String closeTime,Integer userId) throws Exception;
	
	String execlOrderListByType(HttpServletRequest request,HttpServletResponse response ,String type) throws IOException;
	
	/**
	 * 获取会员订单
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Map<String,Object> getOrderListByHY(Map<String, Object> map) throws Exception;
	
	/**
	 * 查询用户消费记录
	 * @param map
	 * @return
	 */
	public Map<String,Object> getUserOrderListByUser(Map<String,Object> map);
	
	/**
	 * 订单拆分退款
	 * @param map
	 * @return
	 */
	public int createdRefundSplitOrder(Map<String,Object> map) throws Exception;
}
